package com.haha.webSocket.core.entity.dateCollect;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

@Setter
@Getter
@ToString
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ChannelDate extends NormalDate {

    /**
     * 应用频道类型
     * 用于标识应用子频道应用类型，仅应用子频道时会使用该字段
     * 0 无效
     * 1000000	王者开黑大厅
     * 1000001	互动小游戏
     * 1000010	腾讯投票
     * 1000051	飞车开黑大厅
     * 1000050	日程提醒
     * 1000070	CoDM 开黑大厅
     * 1010000	和平精英开黑大厅
     * TODO 待补充枚举
     */
    @JsonProperty("application_id")
    private String applicationId;

    private String name;

    /**
     * 操作管理员id
     */
    @JsonProperty("op_user_id")
    private String opUserId;

    /**
     * 频道主id
     */
    @JsonProperty("owner_id")
    private String ownerId;


    /**
     * 频道类型
     * 0	文字子频道
     * 1	保留，不可用
     * 2	语音子频道
     * 3	保留，不可用
     * 4	子频道分组
     * 10005	直播子频道
     * 10006	应用子频道
     * 10007	论坛子频道
     * TODO 待补充枚举
     * https://bot.q.qq.com/wiki/develop/api-v2/server-inter/channel/manage/channel/model.html#channeltype
     */
    private Integer type;

    /**
     * 频道二级分类
     * 0	闲聊
     * 1	公告
     * 2	攻略
     * 3	开黑
     * TODO 待补充枚举
     */
    @JsonProperty("sub_type")
    private Integer subType;

    /**
     * 权限
     * https://bot.q.qq.com/wiki/develop/api-v2/server-inter/channel/role-group/channel_permissions/model.html#Permissions
     * TODO 待补充枚举
     */
    private Integer permissions;

    /**
     * 0	公开频道
     * 1	群主管理员可见
     * 2	群主管理员+指定成员，可使用 修改子频道权限接口 指定成员
     */
    @JsonProperty("private_type")
    private Integer privateType;

    /**
     * 0	无效类型
     * 1	所有人
     * 2	群主管理员+指定成员，可使用 修改子频道权限接口 指定成员
     */
    @JsonProperty("speak_permission")
    private Integer speakPermission;

    /**
     * 排序值
     */
    private Integer position;

    /**
     * 所属分组 id，仅对子频道有效，对 子频道分组（ChannelType=4） 无效
     */
    @JsonProperty("parent_id")
    private String parentId;

}
